Linux(Deepin):GoLang 安装、配置、简单使用与包测试

您所在的位置:网站首页 Deepin 安装apt包管理器 Linux(Deepin):GoLang 安装、配置、简单使用与包测试

Linux(Deepin):GoLang 安装、配置、简单使用与包测试

2024-07-12 02:51| 来源: 网络整理| 查看: 265

目录 Deepin 简介优势遇到问题的解决版本的选择GoLang 环境变量配置GoLang 的简单使用 Go 必要工具与插件的安装git 客户端的安装VSCode 插件安装 安装、运行 go tour我的第一个(功能齐全的)包与测试为 hello 包添加自定义的库测试 小结

Deepin 简介

Deepin 操作系统是由武汉深之度科技有限公司基于 Debian 开发的Linux发行版。 因为这是本人关于在 Deepin 虚拟机上工作、学习的第一篇博客,所以想简要介绍一下 Deepin 的使用情况。

优势 个人选择 Deepin 是因为其安装简单,而且没有Ubuntu那么多坑,可以在10分钟内很轻松地进行 Deepin 虚拟机的创建。Deepin 的界面十分友好,有时尚模式和高效模式,但无论哪种模式都可以满足我个人审美的体验,相比于身边同学使用的比较多的 Ubuntu ,这款操作系统以它的小巧和精致打动了我。

这是 Deepin 的桌面

遇到问题的解决

Deepin采用的是Debian的一个稳定分支进行拓展而来,因此遇到诸如软件包安装此类的问题,可以直接参考Debian系统下的解决方案。

版本的选择

目前Deepin已经更新到了23预览版以及20.7的稳定版,15.4版已确定停止更新,建议选择15.4的旧版,其稳定性是20版完全无法媲美的,而且对于虚拟机使用的系统来说,保持更新不如求稳。 官网已停止提供15版的虚拟光盘下载,此处提供一个百度网盘下载链接:

下载链接:https://pan.baidu.com/s/17zxA1dCBlxP3qN6RUn7utQ?pwd=sg4y 提取码: sg4y # VSCode 安装 在官网下载 VSCode 程序包: 下载地址: [https://go.microsoft.com/fwlink/?LinkID=760868](https://go.microsoft.com/fwlink/?LinkID=760868) 也可以在 /usr/local文件夹下打开终端,使用: `sudo wget https://go.microsoft.com/fwlink/?LinkID=760868` 直接获取代码压缩包,然后解压即可。 打开代码文件夹,在 bin 文件夹下即可找到可执行文件 code,双击就可以开始使用 VSCode 了。 # GoLang 安装配置 使用:`sudo yum install golang` 即可安装 GoLang > yum 全称 Yellow dog Updater Modified,yum 的主要用途是对 rpm 包进行管理,包括安装、卸载、升级等。

可以参考:https://www.cnblogs.com/ct20150811/p/10696635.html 来进行 yum 的安装、配置。 安装完成,在终端输入:go version

运行结果

GoLang 环境变量配置

Go程序包默认安装到了 /usr/local/go,并且已经自动配置了 GOROOT。 我们现在需要自己创建一个文件夹作为 Go 的工作空间。 为方便起见我直接在桌面创建了 GoEnv 文件夹(鼠标右键 - 新建文件夹),由于不是在终端创建的,所以可以直接使用图形化的界面进行文件的创建和修改,这个在后面用 VSCode 打开工作空间,才能够直接在 VSCode 中创建文件。

现在可以来配置工作空间的环境变量了: Deepin 系统的环境变量的配置文件路径为 /etc/profile, 可以直接运行:sudo vim /etc/profile 然后在文件的最后面添加:

# GOROOT: GO的安装路径 export GOROOT=/usr/local/go # GOPATH: GO的工作路径 export GOPATH= export PATH=$PATH:$GOROOT/bin:$GOPATH/bin

然后在终端运行:

在这里插入图片描述 source指令可以让配置文件立即生效,但是运行 source /etc/profile 之后命令行变为了奇怪的颜色,然后关闭终端后,配置便失效了,于是我尝试把网上两种更新源的方法组合起来,颜色恢复正常,同时配置也持久化了! 使用 go env 检验 GOPATH 配置情况:

GOPATH="/home/tommy/Desktop/GoEnv" GoLang 的简单使用

首先在工作空间创建我们的项目文件夹:

mkdir $GOPATH/src/github.com/github-user/hello -p

然后我们用 VSCode 打开工作空间所在的文件夹(也就是之前创建在桌面的 GoEnv),在 VSCode 中找到我们创建项目文件夹,创建 hello.go 文件,编辑、保存:

package main import "fmt" func main() { fmt.Printf("hello, world\n") }

在终端使用:go run hello.go

在这里插入图片描述

Go 必要工具与插件的安装 git 客户端的安装

使用:sudo yum install git

VSCode 插件安装

在 VSCode 中创建了一个 .go 文件之后,会立即弹窗让我安装相关插件,但是点击安装,又全部都安装失败了。 只是因为无法连接 golang 的官网获取工具包。 于是我们只能从 Github 上下载工具包后进行安装:

# 创建文件夹 mkdir $GOPATH/src/golang.org/x/ -p # 下载源码 go get -d github.com/golang/tools # copy cp $GOPATH/src/github.com/golang/tools $GOPATH/src/golang.org/x/ -rf

下载源码的过程莫名失败,这时不必慌张,可以直接用 git clone 将源码克隆到我们需要的文件夹,也即 $GOPATH/src/golang.org/x/tools 具体过程即为:创建 tools 文件夹,然后在文件夹内打开终端,运行:

sudo git clone https://github.com/golang/tools.git

然后我们关闭 VSCode 后,再次进入,重新进入 .go 文件,VSCode便会再次弹窗让我们安装所有的插件,这时我们直接开始安装,稍等片刻(10 mins)即可安装完成。

现在我们可以安装我们自己编写的程序了:

go install github.com/github-user/hello

注意我们可以在系统的任何地方运行这个指令,因为 go 会自动在 GOROOT 和 GOPATH 指定的工作区间查找,我们只需保证包的名字是正确的即可:

go install 此命令会构建 hello 命令,产生一个可执行的二进制文件,接着它会将该二进制文件作为 hello 安装到工作空间的 bin 目录中,可以直接使用 $GOPATH/bin/hello 执行该命令。 如果已经把 $GOPATH/bin 添加到环境变量中了,就可以像图中那样,直接运行 hello 命令(感觉离写游戏脚本又近了一步)。

安装、运行 go tour

Go 语言学习之旅(go tour)是 Github 上的一个软件库,我们可以直接 git clone 下来,然后用 go install 进行下载,这样我们就可以离线运行这款软件。

git clone https://github.com/Go-zh/tour.git

然后执行 go install:

go install github.com/Go-zh/tour.git

安装后执行结果如下:

在这里插入图片描述

我的第一个(功能齐全的)包与测试

参考:如何使用 GO 编程

为 hello 包添加自定义的库

之前我们创建与编写的 hello 包只是一个非常基本的示例,现在我们要创建一个自己的库供 hello.go 文件使用。

在 $GOPATH/src/github.com/github-user/文件夹下创建库所在的文件夹 /stringutil在这里插入图片描述然后在 /stringutil 文件夹下创建名为 reverse.go 的文件,同时编辑: // stringutil 包含有用于处理字符串的工具函数。 package stringutil // Reverse 将其实参字符串以符文为单位左右反转。 func Reverse(s string) string { r := []rune(s) for i, j := 0, len(r)-1; i < len(r)/2; i, j = i+1, j-1 { r[i], r[j] = r[j], r[i] } return string(r) } 使用:go build github.com/github-user/stringutil 编译该包,build 不会产生任何输出。stringutil 包构建完成后,将其添加到 hello 的 import 中:

在这里插入图片描述

再次运行:go install github.com/github-user/hello,运行生成的 hello 命令,可以看到 stringutil.Reverse 函数成功将字符串反向,输出为 “Hello, Go!”

在这里插入图片描述

测试

Go 自带的轻量级测试框架会自动运行每一个名字以 _test.go 结尾的,且包含名为 TestXXX 且签名为 func (t *testing.T) 函数的文件来进行测试;若该函数调用了像 t.Error 或 t.Fail 这样表示失败的函数,此测试即表示失败。

下面直接说明测试流程:

创建文件 $GOPATH/src/github.com/github-user/stringutil/reverse_test.go 来为 stringutil 添加测试: package stringutil import "testing" func TestReverse(t *testing.T) { cases := []struct { in, want string }{ {"Hello, world", "dlrow ,olleH"}, {"Hello, 世界", "界世 ,olleH"}, {"", ""}, } for _, c := range cases { got := Reverse(c.in) if got != c.want { t.Errorf("Reverse(%q) == %q, want %q", c.in, got, c.want) } } } 在 /stringutil 文件夹下运行:go test 进行测试:

在这里插入图片描述

小结 这是第一次真正在 CSDN 上写博客,感觉编辑工具非常人性化,看着自己打的 Markdown 语法在右侧呈现出了自己想要的效果还是很舒服的。这次实验的过程中使用 Deepin 并不是很愉快,虽然表面上说 Deepin 可以完成大部分的需要,但是在使用 yum 安装 git 的时候出现 “事务检测错误“ ,但是网上只有 CentOs 的解决方案,而 Deepin 不支持直接使用 rpm 安装、卸载文件,导致无法使用教程,而且问题的报错也很是奇怪,但是最后使用 sudo apt-get install git 成功安装了 git,但没使用 yum 安装成功总还是有些担心。所以大家还是尽量使用 CentOS 或者 Ubuntu 等大规模的操作系统为好,这样可以在社区找到更多问题的解决方案。本人也考虑近期更换使用的虚拟机操作系统了。初识 Go 语言,首先是为之 go install 命令的功能所震撼,创建一条二进制指令,在系统的任何地方都能够执行,感觉很高大上。关于语言的更多语法和特性应该会在之后的博客中总结。在命令行使用 go run go install 等指令的时候,一定要记清楚指令自动的搜索范围是 $GOPATH/src 而不是 $GOPATH 因为 src 文件夹才是存储源码的文件夹,pkg 文件夹用来存储包对象,而 bin 文件夹下为可执行文件。


【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3